package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.entity.system.SysScenic;
import org.apache.ibatis.annotations.Param;

/**
 * 景区信息Mapper接口
 *
 * @author ruoyi
 * @date 2023-05-04
 */
public interface SysScenicMapper {
    /**
     * 查询景区信息
     *
     * @param scenicId 景区信息主键
     * @return 景区信息
     */
    SysScenic selectSysScenicById(Long scenicId);

    /**
     * 查询景区信息列表
     *
     * @param sysScenic 景区信息
     * @return 景区信息集合
     */
    List<SysScenic> selectSysScenicList(SysScenic sysScenic);

    /**
     * 校验景区名称是否唯一
     *
     * @param scenicName 景区名称
     * @param parentId 父景区ID
     * @return 结果
     */
    SysScenic checkScenicNameUnique(@Param("scenicName") String scenicName, @Param("parentId") Long parentId);

    /**
     * 新增景区信息
     *
     * @param sysScenic 景区信息
     * @return 结果
     */
    int insertSysScenic(SysScenic sysScenic);

    /**
     * 修改景区信息
     *
     * @param sysScenic 景区信息
     * @return 结果
     */
    int updateSysScenic(SysScenic sysScenic);

    /**
     * 删除景区信息
     *
     * @param scenicId 景区信息主键
     * @return 结果
     */
    int deleteSysScenicByScenicId(Long scenicId);

    /**
     * 批量删除景区信息
     *
     * @param scenicIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSysScenicByScenicIds(Long[] scenicIds);

    /**
     * 检查某景区是否存在子景区
     *
     * @param scenicId 景区ID
     * @return 结果
     */
    int hasChildByScenicId(Long scenicId);

    /**
     * 修改景区的运营状态。
     *
     * @param
     * @return
     * @author ZJW
     * @createTime 2023/7/12 23:26
     */
    int changeOperationStatus(@Param("scenicId") Long scenicId, @Param("operationStatus") String operationStatus);
}
